package com.baofu.paycore.service.factory;

import com.baofu.paycore.manager.model.PayBaseBO;
import com.baofu.paycore.service.facade.model.PayBaseDTO;

/**
 * 消费单 组装工厂类
 * <p/>
 *      1、组装支付模型
 * </p>
 * User: LZQ Date: 2016/04/20  Version: 1.0
 */
public interface OrderFactory<K extends PayBaseDTO, V extends PayBaseBO> {

    /**
     * 组装支付模型
     *
     * @param baseDTO        请求对象
     * @return               支付模型
     */
    V build(K baseDTO);

    /**
     * 带原交易 支付内部对象构建
     *
     * @param baseDTO       请求参数
     * @param oldPayBO      原支付模型
     */
    default V build(K baseDTO,V oldPayBO){
        throw new UnsupportedOperationException("不支持此方法!");
    }
}
